<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

</body>
<script>
  const user = {
    name: 'tom',
    age: 22
  }

  console.log(
    JSON.stringify(Object.getOwnPropertyDescriptor(user, "age"))
  )

  // 新增或者修改属性的方式
  Object.defineProperty(user, "name", {
    value: 'tony',
    // 设置属性为不可修改,默认是可写的
    writable: false,
    // 设置是否可遍历
    enumerable: true,
    // 设置是否可删除
    configurable: true
  })
  console.log(user.name)

  // 保护某个对象,禁止向对象添加属性
  Object.preventExtensions(user);
  // 判断某个对象是否能添加属性
  if (Object.isExtensible(user)) {
    user.site = "www.sss.com";
    console.log("test")
  }
  console.log(user)

  // 密封类-密封对象 
  console.log(Object.isSealed(user))

  Object.seal(user)

  console.log(Object.isSealed(user))


</script>

</html>